home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Taifun
/
Taifun 102 (1989-08-15)(Ossowski, Stefan)(DE)(PD).zip
/
Taifun 102 (1989-08-15)(Ossowski, Stefan)(DE)(PD).adf
/
GEO
/
GEO
< prev
next >
Wrap
Text File
|
1989-04-21
|
22KB
|
811 lines
'************************************
'* GEO *
'* Geographielern- *
'* und -testprogramm *
'* *
'* Guenther Pogrzeba --- 11.04.89 *
'************************************
CLEAR,60000&
DIM s$(180),h$(180),rx%(180),ry%(180)
DIM f$(180),e$(180),h1$(180),h2$(180)
DIM s%(180),ma%(180),sr%(15),pr$(180)
DIM sr2%(12),s2%(180),s3%(180),s4%(180)
DIM ar$(180),re1(15),re2(15),re3(15),re4(15),re5(15)
DIM rot(15),gelb(15),blau(15),gruen(15),ora(15)
DIM pu%(60),ri$(60),an$(60),fr$(60)
DIM sl%(30)
LIBRARY "intuition.library"
OPEN "Wissen" FOR INPUT AS 1
FOR i%=1 TO 170
INPUT #1,rx%(i%)
INPUT #1,ry%(i%)
INPUT #1,ar$(i%)
INPUT #1,s2%(i%)
INPUT #1,pr$(i%)
INPUT #1,s$(i%)
INPUT #1,h$(i%)
INPUT #1,f$(i%)
INPUT #1,e$(i%)
INPUT #1,h1$(i%)
INPUT #1,h2$(i%)
INPUT #1,s%(i%)
INPUT #1,s3%(i%)
INPUT #1,s4%(i%)
NEXT
SCREEN 1,640,254,4,2
WINDOW 3,,(149,145)-(499,240),16,1
w3&=WINDOW(7)
WINDOW 2,"G E O",,15,1
PALETTE 0,0,.13,.4
PALETTE 1,1,1,1
PALETTE 2,0,0,0
PALETTE 3,.6,.4,.2
PALETTE 4,.73,0,0
PALETTE 5,.53,.53,.53
PALETTE 6,0,0,.73
PALETTE 7,1,.8,0
PALETTE 8,0,.87,0
PALETTE 9,1,.33,0
PALETTE 10,0,0,.8
PALETTE 11,0,.4,.13
PALETTE 12,0,.47,.53
PALETTE 13,0,.73,1
PALETTE 14,0,.8,.33
DATA 1,2,1,3,2,3,1,2,3,2,1,3,1,3,2
FOR i%=1 TO 15:READ sr%(i%):NEXT
DATA 1,2,3,2,1,3,1,2,3,1,3,2
FOR i%=1 TO 12:READ sr2%(i%):NEXT
DATA 1,2,3,1,2,3
FOR i%=1 TO 6:READ sr3%(i%):NEXT
DATA 1,2,3,2,1,3,1,3,2
FOR i%=1 TO 9:READ sr4%(i%):NEXT
WINDOW 3:GOSUB Karte:WINDOW 2
COLOR 2,5:CLS
LINE(6,2)-(9,7),4,bf
LINE(3,4)-(12,5),4,b
GET(3,2)-(12,7),rot
LINE(6,2)-(9,7),7,bf
LINE(3,4)-(12,5),7,b
GET(3,2)-(12,7),gelb
LINE(6,2)-(9,7),8,bf
LINE(3,4)-(12,5),8,b
GET(3,2)-(12,7),gruen
LINE(6,2)-(9,7),10,bf
LINE(3,4)-(12,5),10,b
GET(3,2)-(12,7),blau
LINE(6,2)-(9,7),9,bf
LINE(3,4)-(12,5),9,b
GET(3,2)-(12,7),ora
main:
WINDOW 2:COLOR 3,0:CLS
FOR i%=1 TO 170:ma%(i%)=0:NEXT
LOCATE 4,37:PRINT "G E O
LOCATE 7,24:PRINT "Geographielern- und -testprogramm
pu%=0
FOR i%=1 TO 170:ma%(i%)=0:NEXT
LOCATE 13,10:PRINT "Kennenlernen zufällig
LOCATE 14,10:PRINT "ausgewählter Länder
LOCATE 13,49:PRINT "Kennenlernen von
LOCATE 14,49:PRINT "speziellen Ländern
LOCATE 17,10:PRINT "Kurztest
LOCATE 17,49:PRINT "Normaler Test
LOCATE 21,10:PRINT "Super-Test
LOCATE 21,49:PRINT "Programm verlassen
rf%=7:hf%=0:ff%=4:ez%=13:anz%=6:GOSUB Auswahl
IF ak%=6 THEN WINDOW CLOSE 3:WINDOW CLOSE 2:SCREEN CLOSE 1:END
COLOR 2,5
IF ak%=1 THEN zuf
IF ak%=2 THEN ausg
IF ak%=3 THEN kurz
IF ak%=4 THEN mittel
IF ak%=5 THEN lang
GOTO main
ausg:
WINDOW 2:COLOR 13,12:CLS
LOCATE 3,3:PRINT "Anfangsbuchstabe des gewünschten Staates:
LOCATE 7,10:PRINT "A/Ä
LOCATE 7,49:PRINT "B/C
LOCATE 11,10:PRINT "D-H
LOCATE 11,49:PRINT "I-K
LOCATE 15,10:PRINT "L/M
LOCATE 15,49:PRINT "N-R
LOCATE 19,10:PRINT "S
LOCATE 19,49:PRINT "T-Z
LOCATE 22,10:PRINT "Zurück zum
LOCATE 23,10:PRINT "Hauptmenü"
rf%=4
hf%=12
ff%=1
ez%=6:anz%=9
GOSUB Auswahl
IF ak%=9 THEN main
CLS:PRINT " Moment...
g2%=0:g3%=0:g4%=0:g5%=0:g6%=0
IF ak%=1 THEN g1%=65:g2%=196
IF ak%=2 THEN g1%=66:g2%=67
IF ak%=3 THEN g1%=68:g2%=69:g3%=70:g4%=71:g5%=72
IF ak%=4 THEN g1%=73:g2%=74:g3%=75
IF ak%=5 THEN g1%=76:g2%=77
IF ak%=6 THEN g1%=78:g2%=79:g3%=80:g4%=81:g5%=82:g6%=214
IF ak%=7 THEN g1%=83
IF ak%=8 THEN g1%=84:g2%=85:g3%=86:g4%=87:g5%=90
gs%=0
FOR i%=1 TO 170
s$=LEFT$(s$(i%),1)
s%=ASC(s$)
IF s%=g1% OR s%=g2% OR s%=g3% OR s%=g4% OR s%=g5% OR s%=g6% THEN
gs%=gs%+1
sl%(gs%)=i%
END IF
NEXT
FOR i%=1 TO gs%-1
m$=s$(sl%(i%))
FOR j%=i%+1 TO gs%
IF s$(sl%(j%))<m$ THEN
m$=s$(sl%(j%))
SWAP sl%(j%),sl%(i%)
END IF
NEXT j%,i%
CLS
x=gs%/2:x%=INT(x+.6)
FOR i%=1 TO x%
LOCATE i%+2,3:PRINT USING"##";i%;:PRINT " "s$(sl%(i%))
NEXT
FOR i%=x%+1 TO gs%
LOCATE i%-x%+2,38:PRINT USING"##";i%;:PRINT " "s$(sl%(i%))
NEXT:LOCATE 20,1
FOR i%=1 TO gs%
PRINT USING"###";i%;
LINE(i%*24-20,150)-(i%*24+3,161),14,b
NEXT
1566 IF MOUSE(0)=0 THEN 1566
1567 IF MOUSE(0)=0 THEN 1567
x%=MOUSE(1):y%=MOUSE(2)
IF y%<150 OR y%>161 THEN 1566
IF x%<4 OR x%>gs%*24+3 THEN 1566
z%=INT((x%-4)/24)+1
r%=sl%(z%)
WINDOW 3
a%=rx%(r%):b%=ry%(r%)
GET(a%,b%)-(a%+9,b%+5),re3:PUT(a%,b%),rot,PSET
WINDOW 2:COLOR 9,11:CLS
WindowToFront(w3&)
LOCATE 3,20:PRINT "Staat: "s$(r%)
LOCATE 4,20:PRINT "Hauptstadt: "h$(r%)
LOCATE 5,20:PRINT "Fläche: ";
f$=f$(r%):f=VAL(f$)*1000
n%=1:h=1E+08:fa$=""
FOR j%=7 TO 0 STEP -1
h=h/10:z%=0
WHILE f>=h:f=f-h:z%=z%+1:WEND
IF z%=0 AND n%=1 THEN 2009
fa$=fa$+CHR$(z%+48):n%=0
IF j%=6 OR j%=3 THEN fa$=fa$+"."
2009 NEXT
PRINT fa$" qkm
LOCATE 6,20:PRINT "Einwohner: ";
e$=e$(r%):e=VAL(e$)
IF e>=1 THEN e$=e$+" Mio.":GOTO 2002
IF e>=.1 THEN e$=RIGHT$(e$,LEN(e$)-2):e$=e$+"00":e$=LEFT$(e$,3)+".000":GOTO 2002
IF e>=.01 THEN e$=RIGHT$(e$,LEN(e$)-3):e$=e$+"0":e$=LEFT$(e$,2)+".000":GOTO 2002
e$=RIGHT$(e$,LEN(e$)-4):e$=LEFT$(e$,1)+".000"
2002 PRINT e$
LOCATE 11,20:PRINT "Nächstes Land
LOCATE 13,20:PRINT "Zurück zum Hauptmenü
LINE(146,78)-(319,88),4,b
LINE(146,94)-(319,104),4,b
2004 IF MOUSE(0)=0 THEN 2004
2005 IF MOUSE(0)=0 THEN 2005
x%=MOUSE(1):y%=MOUSE(2)
IF x%<146 OR x%>319 THEN 2004
IF y%>=78 AND y%<=88 THEN WINDOW 3:PUT(a%,b%),re3,PSET:GOTO ausg
IF y%>=94 AND y%<=104 THEN WINDOW 3:PUT(a%,b%),re3,PSET:WINDOW 2:GOTO main
GOTO 2004
zuf:
RANDOMIZE TIMER
1001 r%=INT(RND*170)+1
IF ma%(r%)=1 THEN 1001
ma%(r%)=1
WINDOW 3
a%=rx%(r%):b%=ry%(r%)
GET(a%,b%)-(a%+9,b%+5),re3:PUT(a%,b%),rot,PSET
WINDOW 2:COLOR 9,11:CLS
WindowToFront(w3&)
LOCATE 3,20:PRINT "Staat: "s$(r%)
LOCATE 4,20:PRINT "Hauptstadt: "h$(r%)
LOCATE 5,20:PRINT "Fläche: ";
f$=f$(r%):f=VAL(f$)*1000
n%=1:h=1E+08:fa$=""
FOR j%=7 TO 0 STEP -1
h=h/10:z%=0
WHILE f>=h:f=f-h:z%=z%+1:WEND
IF z%=0 AND n%=1 THEN 1009
fa$=fa$+CHR$(z%+48):n%=0
IF j%=6 OR j%=3 THEN fa$=fa$+"."
1009 NEXT
PRINT fa$" qkm
LOCATE 6,20:PRINT "Einwohner: ";
e$=e$(r%):e=VAL(e$)
IF e>=1 THEN e$=e$+" Mio.":GOTO 1002
IF e>=.1 THEN e$=RIGHT$(e$,LEN(e$)-2):e$=e$+"00":e$=LEFT$(e$,3)+".000":GOTO 1002
IF e>=.01 THEN e$=RIGHT$(e$,LEN(e$)-3):e$=e$+"0":e$=LEFT$(e$,2)+".000":GOTO 1002
e$=RIGHT$(e$,LEN(e$)-4):e$=LEFT$(e$,1)+".000"
1002 PRINT e$
LOCATE 11,20:PRINT "Nächstes Land
LOCATE 13,20:PRINT "Zurück zum Hauptmenü
LINE(146,78)-(319,88),4,b
LINE(146,94)-(319,104),4,b
1004 IF MOUSE(0)=0 THEN 1004
1005 IF MOUSE(0)=0 THEN 1005
x%=MOUSE(1):y%=MOUSE(2)
IF x%<146 OR x%>319 THEN 1004
IF y%>=78 AND y%<=88 THEN WINDOW 3:PUT(a%,b%),re3,PSET:GOTO 1001
IF y%>=94 AND y%<=104 THEN WINDOW 3:PUT(a%,b%),re3,PSET:WINDOW 2:GOTO main
GOTO 1004
kurz:
zahl%=6:GOSUB Hst
zahl2%=3:GOSUB Hl
zahl%=9:zahl3%=3:GOSUB Fl
zahl%=12:zahl3%=3:GOSUB Einw
zahl%=15:zahl3%=3:GOSUB Reg
mx%=18:GOSUB Auswert
GOTO main
mittel:
zahl%=9:GOSUB Hst
zahl2%=6:GOSUB Hl
zahl%=15:zahl3%=3:GOSUB Fl
zahl%=18:zahl3%=3:GOSUB Einw
zahl%=21:zahl3%=6:GOSUB Reg
mx%=27:GOSUB Auswert
GOTO main
lang:
zahl%=15:GOSUB Hst
zahl2%=12:GOSUB Hl
zahl%=27:zahl3%=6:GOSUB Fl
zahl%=33:zahl3%=6:GOSUB Einw
zahl%=39:zahl3%=9:GOSUB Reg
mx%=48:GOSUB Auswert
GOTO main
Reg:
FOR i%=1 TO zahl3%
RANDOMIZE TIMER
s%=sr4%(i%)
GOSUB Region
WINDOW 2:COLOR 2,5:CLS
WindowToFront(w3&)
a$=ar$(r%)
LOCATE 2,2:PRINT "Frage"i%+zahl%
LINE(3,17)-(75,17),2
IF LEFT$(a$,1)="*" THEN a$=RIGHT$(a$,LEN(a$)-1):l$="liegen" ELSE l$="liegt"
IF a$="" THEN x$="" ELSE x$=" "
fr%=i%+zahl%
fr$(fr%)="In welcher Region "+l$+x$+a$+" "+s$(r%)+" ?
LOCATE 4,2:PRINT fr$(fr%)
FOR j%=1 TO 5 STEP 2
LOCATE 5+j%*2,10:PRINT x$(j%)
NEXT
FOR j%=2 TO 4 STEP 2
LOCATE 3+j%*2,49:PRINT x$(j%)
NEXT
LOCATE 14,49:PRINT "Frage nicht
LOCATE 15,49:PRINT "beantworten
rf%=0:hf%=5:ff%=6:ez%=6:anz%=6:GOSUB Auswahl
WINDOW 3
PUT(a%(1),b%(1)),re1,PSET
PUT(a%(2),b%(2)),re2,PSET
PUT(a%(3),b%(3)),re3,PSET
PUT(a%(4),b%(4)),re4,PSET
PUT(a%(5),b%(5)),re5,PSET
IF ak%=6 THEN pu%(fr%)=0:ri$(fr%)=x$(x5%):an$(fr%)="---":GOTO 425
IF ak%=x5% THEN pu%=pu%+2:pu%(fr%)=2:an$(fr%)=x$(x5%)
IF ak%<>x5% THEN pu%=pu%-1:pu%(fr%)=-1:ri$(fr%)=x$(x5%):an$(fr%)=x$(ak%)
FOR d=1 TO 700:NEXT
425 NEXT
RETURN
Region:
WINDOW 3
r%=INT(RND*170)+1
IF s4%(r%)<>s% THEN Region
IF ma%(r%)=1 THEN Region
ma%(r%)=1
x$(1)="Gelb":x$(2)="Orange"
x$(3)="Rot":x$(4)="Grün":x$(5)="Blau"
x6%=INT(RND*4)+2
a%(1)=rx%(r%)
b%(1)=ry%(r%)
FOR j%=2 TO 5
765 IF j%=x6% THEN
a%(j%)=INT(RND*200+30)
b%(j%)=INT(RND*80+10)
ELSE
q%=INT(RND*170)+1
a%(j%)=rx%(q%)
b%(j%)=ry%(q%)
END IF
m%=0
FOR k%=1 TO j%-1
e=(a%(j%)-a%(k%))^2+((b%(j%)-b%(k%))*2)^2
IF k%=x5% AND j%=x6% AND e<6000 THEN m%=1
IF e<600 THEN m%=1
NEXT k%
IF m%=1 THEN 765
771 NEXT j%
q%=INT(RND*5)+1:x5%=q%
SWAP a%(1),a%(q%)
SWAP b%(1),b%(q%)
FOR j%=1 TO 5
IF j%=1 THEN GET(a%(1),b%(1))-(a%(1)+9,b%(1)+5),re1:PUT(a%(1),b%(1)),gelb,PSET
IF j%=2 THEN GET(a%(2),b%(2))-(a%(2)+9,b%(2)+5),re2:PUT(a%(2),b%(2)),ora,PSET
IF j%=3 THEN GET(a%(3),b%(3))-(a%(3)+9,b%(3)+5),re3:PUT(a%(3),b%(3)),rot,PSET
IF j%=4 THEN GET(a%(4),b%(4))-(a%(4)+9,b%(4)+5),re4:PUT(a%(4),b%(4)),gruen,PSET
IF j%=5 THEN GET(a%(5),b%(5))-(a%(5)+9,b%(5)+5),re5:PUT(a%(5),b%(5)),blau,PSET
NEXT j%
RETURN
Auswert:
WINDOW 2:COLOR 2,5:CLS
PRINT "Auswertung:
PRINT
FOR i%=1 TO mx%
PRINT "Frage";:PRINT USING"###";i%;:PRINT " : "fr$(i%)
COLOR 6:y%=CSRLIN*8-3
IF pu%(i%)<1 THEN
PRINT " "an$(i%);
COLOR 4:LOCATE CSRLIN,30
PRINT ri$(i%);
LOCATE CSRLIN,70:PRINT pu%(i%)
ELSE
PRINT " "an$(i%);
LINE(241,y%)-(243,y%+2),4
LINE(243,y%+2)-(248,y%-4),4
COLOR 4:LOCATE CSRLIN,70:PRINT 2
END IF
IF pu%(i%)=-1 THEN
l%=LEN(an$(i%))
IF y%>230 THEN y%=y%-8
LINE(8,y%+3)-(l%*8+7,y%-4),4
END IF
COLOR 2:IF i% MOD 12=0 THEN
PRINT "Taste...
887 IF INKEY$="" THEN 887
END IF
NEXT
PRINT :PRINT
IF pu%<0 THEN pu%=0
pro%=INT(50*pu%/mx%+.5)
PRINT "Punktzahl:"pu%"von maximal"mx%*2" ( ="pro%"% )
PRINT:PRINT "Bewertung: ";
IF pro%>92 THEN PRINT "Hyperfantastisch !!!":GOTO 903
IF pro%>84 THEN PRINT "Super":GOTO 903
IF pro%>74 THEN PRINT "Echt stark":GOTO 903
IF pro%>64 THEN PRINT "Erst einmal nachmachen":GOTO 903
IF pro%>54 THEN PRINT "Nicht schlecht":GOTO 903
IF pro%>44 THEN PRINT "Könnte besser sein":GOTO 903
IF pro%>34 THEN PRINT "Ziemlich schwach":GOTO 903
IF pro%>24 THEN PRINT "Schlapp":GOTO 903
IF pro%>14 THEN PRINT "Äußerst schwach":GOTO 903
IF pro%>0 THEN PRINT "Eine mittlere Katastrophe":GOTO 903
PRINT "Absoluter Negativ-Rekord
903 PRINT :PRINT "Taste...
904 IF INKEY$="" THEN 904
RETURN
Einw:
FOR i%=1 TO zahl3%
CLS:RANDOMIZE TIMER
s%=sr3%(i%)
LOCATE 3,2:PRINT "Frage"i%+zahl%
LINE(3,25)-(75,25),2
GOSUB Einwohner
fr%=i%+zahl%
fr$(fr%)="Die Einwohnerzahl "+pr$(r%)+" "+s$(r%)+" beträgt: (in Millionen)
LOCATE 5,2:PRINT fr$(fr%)
FOR j%=1 TO 3 STEP 2
LOCATE 8+j%*2,10:PRINT x$(j%)
NEXT
FOR j%=2 TO 4 STEP 2
LOCATE 6+j%*2,49:PRINT x$(j%)
NEXT
LOCATE 17,10:PRINT "Frage nicht
LOCATE 18,10:PRINT "beantworten
rf%=0:hf%=5:ff%=6:ez%=9:anz%=5:GOSUB Auswahl
IF ak%=5 THEN pu%(fr%)=0:ri$(fr%)=x$(x5%):an$(fr%)="---":GOTO 325
IF ak%=x5% THEN pu%=pu%+2:pu%(fr%)=2:an$(fr%)=x$(x5%)
IF ak%<>x5% THEN pu%=pu%-1:pu%(fr%)=-1:ri$(fr%)=x$(x5%):an$(fr%)=x$(ak%)
FOR d=1 TO 700:NEXT
325 NEXT
RETURN
Fl:
FOR i%=1 TO zahl3%
CLS:RANDOMIZE TIMER
s%=sr3%(i%)
LOCATE 3,2:PRINT "Frage"i%+zahl%
LINE(3,25)-(75,25),2
GOSUB Flaeche
fr%=i%+zahl%
fr$(fr%)="Die Fläche "+pr$(r%)+" "+s$(r%)+" beträgt: (in 1000 qkm)
LOCATE 5,2:PRINT fr$(fr%)
FOR j%=1 TO 3 STEP 2
LOCATE 8+j%*2,10:PRINT x$(j%)
NEXT
FOR j%=2 TO 4 STEP 2
LOCATE 6+j%*2,49:PRINT x$(j%)
NEXT
LOCATE 17,10:PRINT "Frage nicht
LOCATE 18,10:PRINT "beantworten
rf%=0:hf%=5:ff%=6:ez%=9:anz%=5:GOSUB Auswahl
IF ak%=5 THEN pu%(fr%)=0:ri$(fr%)=x$(x5%):an$(fr%)="---":GOTO 225
IF ak%=x5% THEN pu%=pu%+2:pu%(fr%)=2:an$(fr%)=x$(x5%)
IF ak%<>x5% THEN pu%=pu%-1:pu%(fr%)=-1:ri$(fr%)=x$(x5%):an$(fr%)=x$(ak%)
FOR d=1 TO 700:NEXT
225 NEXT
RETURN
Einwohner:
r%=INT(RND*170)+1
IF s3%(r%)<>s% THEN Einwohner
IF ma%(r%)=1 THEN Einwohner
ma%(r%)=1
x$(1)=e$(r%)
g=VAL(x$(1))
302 g%=INT(RND*4)
IF g>200 AND g%=3 THEN 302
IF g<1 AND g%=0 THEN 302
IF g%>0 THEN g1=g*(1.4+RND*2.6) ELSE g1=g*(.71-RND*.46)
303 IF g%>1 THEN g2=g*(1.4+RND*6.6) ELSE g2=g*(.71-RND*.585)
IF g1/g2>.71 AND g1/g2<1.4 THEN 303
304 IF g%=3 THEN g3=g*(1.4+RND*8.6) ELSE g3=g*(.71-RND*.61)
IF g1/g3>.71 AND g1/g3<1.4 THEN 304
IF g2/g3>.71 AND g2/g3<1.4 THEN 304
g=g1:GOSUB rund:g1=g
g=g2:GOSUB rund:g2=g
g=g3:GOSUB rund:g3=g
g$=STR$(g1):x$(2)=RIGHT$(g$,LEN(g$)-1)
g$=STR$(g2):x$(3)=RIGHT$(g$,LEN(g$)-1)
g$=STR$(g3):x$(4)=RIGHT$(g$,LEN(g$)-1)
FOR j%=2 TO 4
IF VAL(x$(j%))<1 THEN x$(j%)="0"+x$(j%)
NEXT
m%=4:GOSUB Misch
FOR j%=1 TO 4
IF x$(j%)=e$(r%) THEN x5%=j%
NEXT
RETURN
Flaeche:
r%=INT(RND*170)+1
IF s3%(r%)<>s% THEN Flaeche
IF ma%(r%)=1 THEN Flaeche
ma%(r%)=1
x$(1)=f$(r%)
f=VAL(x$(1))
202 g%=INT(RND*4)
IF f>8000 AND g%=3 THEN 202
IF f<2 AND g%=0 THEN 202
IF g%>0 THEN f1=f*(1.4+RND*2.6) ELSE f1=f*(.71-RND*.46)
203 IF g%>1 THEN f2=f*(1.4+RND*6.6) ELSE f2=f*(.71-RND*.585)
IF f1/f2>.71 AND f1/f2<1.4 THEN 203
mu=8.6:mu2=.61
204 IF g%=3 THEN f3=f*(1.4+RND*mu) ELSE f3=f*(.71-RND*mu2)
IF f1/f3>.71 AND f1/f3<1.4 THEN 204
IF f2/f3>.71 AND f2/f3<1.4 THEN 204
g=f1:GOSUB rund:f1=g
g=f2:GOSUB rund:f2=g
g=f3:GOSUB rund:f3=g
f$=STR$(f1):x$(2)=RIGHT$(f$,LEN(f$)-1)
f$=STR$(f2):x$(3)=RIGHT$(f$,LEN(f$)-1)
f$=STR$(f3):x$(4)=RIGHT$(f$,LEN(f$)-1)
FOR j%=2 TO 4
IF VAL(x$(j%))<1 THEN x$(j%)="0"+x$(j%)
NEXT
m%=4:GOSUB Misch
FOR j%=1 TO 4
IF x$(j%)=f$(r%) THEN x5%=j%
NEXT
RETURN
rund:
g#=g:l%=0
r7:
IF g#>=10 THEN
g#=g#/10:l%=l%+1:GOTO r7
ELSEIF g#<1 THEN
g#=g#*10:l%=l%-1:GOTO r7
END IF
IF RND<.4-l%*.18 THEN g#=INT(g#+.5):GOTO r8
IF l%<2 OR l%=2 AND RND<.4 THEN g#=INT(g#*10+.5)/10#:GOTO r8
IF l%=2 OR RND<.3 THEN g#=INT(g#*100+.5)/100#:GOTO r8
g#=INT(g#*1000+.5)/1000#
r8:
FOR k%=1 TO l%:g#=g#*10:NEXT
FOR k%=-1 TO l% STEP -1:g#=g#/10:NEXT
g=g#
RETURN
Hl:
FOR i%=1 TO zahl2%
CLS:RANDOMIZE TIMER
s%=sr2%(i%)
LOCATE 3,2:PRINT "Frage"i%+zahl%
LINE(3,25)-(75,25),2
GOSUB Land:x5%=x%:h$=h$(r%)
IF RND<.16 THEN
x5%=7
IF RND<.5 THEN h$=h1$(r%) ELSE h$=h2$(r%)
END IF
fr%=i%+zahl%
fr$(fr%)=h$+" ist die Hauptstadt von welchem Land ?
LOCATE 5,2:PRINT fr$(fr%)
FOR j%=1 TO 5 STEP 2
LOCATE 7+j%*2,10:PRINT x$(j%)
NEXT
FOR j%=2 TO 6 STEP 2
LOCATE 5+j%*2,49:PRINT x$(j%)
NEXT
LOCATE 20,10:PRINT h$" ist
LOCATE 21,10:PRINT "keine Hauptstadt
LOCATE 20,49:PRINT "Frage nicht
LOCATE 21,49:PRINT "beantworten
x$(7)=h$+"=keine Hpst."
rf%=0:hf%=5:ff%=6:ez%=8:anz%=8:GOSUB Auswahl
IF ak%=8 THEN pu%(fr%)=0:ri$(fr%)=x$(x5%):an$(fr%)="---":GOTO 123
IF ak%=x5% THEN pu%=pu%+2:pu%(fr%)=2:an$(fr%)=x$(x5%)
IF ak%<>x5% THEN pu%=pu%-1:pu%(fr%)=-1:ri$(fr%)=x$(x5%):an$(fr%)=x$(ak%)
FOR d=1 TO 700:NEXT
123 NEXT
RETURN
Hst:
FOR i%=1 TO zahl%
CLS:RANDOMIZE TIMER
s%=sr%(i%)
LOCATE 3,2:PRINT "Frage"i%
LINE(3,25)-(73,25),2
GOSUB Hauptstadt:x5%=x%
fr$(i%)="Wie heißt die Hauptstadt "+pr$(r%)+" "+xs$+" ?
LOCATE 5,2:PRINT fr$(i%)
FOR j%=1 TO 7 STEP 2
LOCATE 7+j%*2,10:PRINT x$(j%)
NEXT
FOR j%=2 TO 6 STEP 2
LOCATE 5+j%*2,49:PRINT x$(j%)
NEXT
LOCATE 20,49:PRINT "Frage nicht
LOCATE 21,49:PRINT "beantworten
rf%=0:hf%=5:ff%=6:ez%=8:anz%=8:GOSUB Auswahl
IF ak%=8 THEN pu%(i%)=0:ri$(i%)=x$(x5%):an$(i%)="---":GOTO 23
IF ak%=x5% THEN pu%=pu%+2:pu%(i%)=2:an$(i%)=x$(x5%)
IF ak%<>x5% THEN pu%=pu%-1:pu%(i%)=-1:ri$(i%)=x$(x5%):an$(i%)=x$(ak%)
FOR d=1 TO 700:NEXT
23 NEXT
RETURN
Hauptstadt:
r%=INT(RND*170)+1
IF s%(r%)<>s% THEN Hauptstadt
IF ma%(r%)=1 THEN Hauptstadt
ma%(r%)=1
xs$=s$(r%)
x$(1)=h$(r%)
x$(2)=h1$(r%)
x$(3)=h2$(r%)
FOR j%=4 TO 7
14 q%=INT(RND*170)+1:qq%=INT(RND*3):m%=0
IF qq%=0 THEN q$=h$(q%)
IF qq%=1 THEN q$=h1$(q%)
IF qq%=2 THEN q$=h2$(q%)
FOR k%=1 TO j%-1
IF x$(k%)=q$ THEN m%=1
NEXT
IF m%=1 THEN 14
x$(j%)=q$
NEXT
m%=7:GOSUB Misch
FOR j%=1 TO 7
IF x$(j%)=h$(r%) THEN x%=j%
NEXT
RETURN
Land:
r%=INT(RND*170)+1
IF s2%(r%)<>s% THEN Land
IF ma%(r%)=1 THEN Land
ma%(r%)=1
x$(1)=s$(r%):a%=2
IF r%>1 THEN x$(2)=s$(r%-1):a%=3
IF r%<170 THEN x$(3)=s$(r%+1):a%=a%+1
FOR j%=a% TO 6
114 q%=INT(RND*170)+1:m%=0
q$=s$(q%)
FOR k%=1 TO j%-1
IF x$(k%)=q$ THEN m%=1
NEXT
IF m%=1 THEN 114
x$(j%)=q$
NEXT
m%=6:GOSUB Misch
FOR j%=1 TO 6
IF x$(j%)=s$(r%) THEN x%=j%
NEXT
RETURN
Misch:
FOR mi%=1 TO m%*5
m1%=INT(RND*m%)+1
m2%=INT(RND*m%)+1
SWAP x$(m1%),x$(m2%)
NEXT
RETURN
Auswahl:
FOR j%=0 TO anz%-1
x1%=11+(j% MOD 2)*312:x2%=59+(j% MOD 2)*312
y1%=ez%*8+(j%\2)*32-9:y2%=ez%*8+(j%\2)*32+14
LINE(x1%,y1%)-(x2%,y2%),rf%,b
x1%(j%+1)=x1%
x2%(j%+1)=x2%
y1%(j%+1)=y1%
y2%(j%+1)=y2%
NEXT:ak%=0:PATTERN &H6318
57 IF MOUSE(0)=0 THEN 57
58 IF MOUSE(0)=0 THEN 58
x%=MOUSE(1):y%=MOUSE(2):neu%=0
FOR j%=1 TO anz%
IF x%>=x1%(j%) AND x%<=x2%(j%) AND y%>=y1%(j%) AND y%<=y2%(j%) THEN neu%=j%
NEXT
IF neu%=0 THEN GOSUB clr:ak%=0:GOTO 57
IF neu%=ak% THEN 66
GOSUB clr:ak%=neu%
LINE(x1%(ak%)+1,y1%(ak%)+1)-(x2%(ak%)-1,y2%(ak%)-1),ff%
LINE(x1%(ak%)+1,y2%(ak%)-1)-(x2%(ak%)-1,y1%(ak%)+1),ff%
GOTO 57
66 PATTERN &HFFFF
LINE(x1%(ak%)+1,y1%(ak%)+1)-(x2%(ak%)-1,y2%(ak%)-1),ff%
LINE(x1%(ak%)+1,y2%(ak%)-1)-(x2%(ak%)-1,y1%(ak%)+1),ff%
RETURN
clr:
FOR j%=1 TO anz%
LINE(x1%(j%)+1,y1%(j%)+1)-(x2%(j%)-1,y2%(j%)-1),hf%,bf
NEXT:RETURN
Karte:
COLOR 2,5:CLS
RESTORE 390
280 READ n%
IF n%<0 THEN RETURN
READ x1%,y1%,x%,y%
LINE (x1%*2,y1%+1)-(x%*2,y%+1),2
FOR k%=3 TO n%
READ x%,y%
LINE -(x%*2,y%+1),2
NEXT k%
GOTO 280
390 DATA 168,2,16,3,16,3,15,4,14,6,14,6,12,8,12,9,10,10,10,12,9,15,9,17,10
DATA 19,11,25,11,27,12,27,13,30,13,30,12,28,12,28,10,26,10,26,9,28,8,30,8
DATA 30,9,32,10,32,9,33,9,33,12,31,12,32,13,35,13,35,11,37,9,39,9,36,12
DATA 39,12,39,10,40,9,43,9,46,12,46,14,43,17,40,15,40,14,42,14,43,13,42,12
DATA 40,12,40,13,38,14,38,16,34,16,30,19,30,20,33,22,34,22,34,25,37,21
DATA 36,19,39,17,40,17,41,18,41,19,43,18,44,22,46,23,46,24,45,24,45,25
DATA 45,26,46,26,46,28,43,27,43,26,45,25,42,25,39,25,40,27,40,30,37,30
DATA 32,35,32,37,28,39,29,43,28,44,27,43,26,40,24,40,24,41,21,41,18,44
DATA 18,46,17,47,19,49,21,48,21,46,24,46,22,51,25,51,25,55,28,55,28,56
DATA 29,56,32,53,35,55,36,54,42,58,44,58,45,60,45,62,47,62,48,64,51,64
DATA 54,66,54,68,52,71,52,76,48,80,48,83,45,87,45,88,42,91,42,94,43,95
DATA 43,99,45,100,42,100,43,99,41,100,38,96,35,88,35,83,34,76,30,74,30,73
DATA 26,66,26,62,28,57,27,56,24,56,22,53,21,53,21,52,19,52,19,51,16,51
DATA 12,49,13,47,10,40,11,46,10,46,8,42,8,38,7,37,7,32,11,27,12,27,12,26
DATA 11,24,12,19,9,17,7,18,6,18,6,19,4,19,2,20,2,16
DATA 5
DATA 31,8,34,7,35,8,32,9,31,8
DATA 4
DATA 34,9,36,9,34,11,34,9
DATA 5
DATA 36,7,38,7,38,8,36,8,36,7
DATA 40
DATA 42,7,46,4,44,4,43,6,41,6,41,5,44,4,48,2,50,2,51,3,50,4,54,3,58,3,61,1
DATA 64,1,65,3,67,3,67,4,65,8,64,8,62,10,63,10,63,11,59,12,58,14,57,14
DATA 53,19,51,18,49,14,51,12,51,11,52,11,52,8,48,8,47,7,50,4,48,4,45,8
DATA 44,7,42,7
DATA 6
DATA 62,13,66,13,67,14,64,16,62,14,62,13
DATA 7
DATA 25,46,26,45,28,45,31,47,29,48,29,47,25,46
DATA 5
DATA 32,47,34,48,32,49,31,48,32,47
DATA 5
DATA 78,5,80,5,81,6,79,7,78,5
DATA 4
DATA 81,4,82,4,82,5,81,4
DATA 4
DATA 81,6,82,6,82,7,81,6
DATA 8
DATA 94,10,94,8,97,6,98,6,98,7,95,9,95,10,94,10
DATA 9
DATA 96,70,98,69,98,68,99,67,100,70,98,76,96,77,95,75,96,70
DATA 5
DATA 140,20,143,23,143,25,142,25,140,20
DATA 5
DATA 143,26,145,26,146,27,144,29,143,26
DATA 9
DATA 145,29,147,30,147,33,143,36,142,35,144,34,142,34,145,32,145,29
DATA 5
DATA 139,40,140,40,140,43,139,42,139,40
DATA 7
DATA 140,46,141,45,142,48,143,50,142,50,139,48,140,46
DATA 4
DATA 140,51,140,52,139,53,140,51
DATA 4
DATA 142,50,143,52,142,52,142,50
DATA 10
DATA 144,52,145,53,144,56,143,55,143,54,142,54,142,53,142,52,143,52,144,52
DATA 9
DATA 138,54,140,54,140,60,138,62,135,62,134,60,134,57,136,57,138,54
DATA 8
DATA 141,58,144,58,144,59,142,59,143,64,141,64,140,62,141,58
DATA 5
DATA 145,58,146,58,146,59,145,59,145,58
DATA 15
DATA 147,59,149,59,150,60,152,60,156,62,158,64,160,64,158,66,160,68,157,68
DATA 155,66,152,67,151,64,148,62,147,59
DATA 4
DATA 143,66,140,66,140,67,141,67
DATA 2
DATA 143,67,144,66
DATA 13
DATA 160,86,162,86,163,90,160,93,159,92,154,96,152,96,152,95,158,91
DATA 159,92,159,90,161,89,160,86
DATA 26
DATA 133,85,134,83,134,76,136,74,138,74,143,70,145,70,148,68,150,68
DATA 150,70,152,72,153,68,154,68,156,76,158,78,152,88,146,89,148,90
DATA 148,91,146,92,146,89,144,84,139,84,139,85,134,85,133,84
DATA 10
DATA 126,55,127,55,133,61,132,65,136,66,137,65,136,64,131,64,126,57,126,55
DATA 9
DATA 68,20,70,19,71,20,71,22,72,23,72,24,68,25,69,22,68,20
DATA 5
DATA 68,22,68,24,66,24,67,22,68,22
DATA 181
DATA 65,36,60,44,60,52,66,57,74,57,74,60,77,64,77,68,76,70,76,73,80,84
DATA 86,83,91,76,91,73,94,70,94,66,93,64,93,62,100,54,100,51,96,52
DATA 92,47,90,40,94,46,96,50,100,49,102,48
DATA 105,44,97,41,98,38,103,41
DATA 105,42,108,42,110,45
DATA 112,45,113,52,115,55,116,55,117,52,117,55,118,55,118,53,117,52
DATA 118,48,122,44,127,51,127,53,130,58,132,58,132,57,128,52,128,50
DATA 132,54,134,52,134,50,132,46,132,44,136,44,138,42,139,36,136,34
DATA 136,32,134,32,134,30,137,30,139,34,140,34,141,33,139,30,139,28
DATA 141,28,141,28,136,18,136,16,141,16,141,14,143,14,143,18,147,21
DATA 148,20,145,15,148,12,147,10,150,10,149,8,146,8,144,7,138,7,138,8
DATA 134,8,134,7,126,7,126,8,122,8,122,7,115,7,114,5,110,5,110,4,108,4
DATA 106,2,104,4,105,4,105,3,106,3,106,5,108,5,108,7,106,7,102,9,104,12
DATA 102,12,100,8,99,8,99,10,100,12,94,12,92,13,91,11,90,11,90,14,88,15
DATA 88,14,89,13,84,10,82,10,74,17,74,20,76,19,79,21,80,20,80,17,82,14
DATA 84,16,82,18,83,20,80,22,76,22,76,20,75,20,75,22,70,26,69,26,70,28
DATA 70,29,66,29,65,33,67,34,71,33,71,31,76,29,79,33,79,34,80,34,80,31
DATA 76,28,79,28,83,34,83,32,86,31,86,28,88,28,89,29,90,27,92,27,91,28
DATA 93,30,88,30,85,33,86,34,90,34,90,38,86,38,83,36,80,38,76,36,76,34
DATA 71,34,70,35,67,35,65,36
DATA 5
DATA 96,28,98,27,100,34,98,34,96,28
DATA -34